{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Scatterplot with Categories"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A function to quickly produce a scatter plot colored by categories from a pandas `DataFrame` or NumPy `ndarray` object."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "> from mlxtend.general_plotting import category_scatter"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Overview"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### References\n",
    "\n",
    "- -"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example 1 - Category Scatter from Pandas DataFrames"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>label</th>\n",
       "      <th>x</th>\n",
       "      <th>y</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>class1</td>\n",
       "      <td>10.0</td>\n",
       "      <td>8.04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>class1</td>\n",
       "      <td>10.5</td>\n",
       "      <td>7.30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>class2</td>\n",
       "      <td>8.3</td>\n",
       "      <td>5.50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>class2</td>\n",
       "      <td>8.1</td>\n",
       "      <td>5.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>class3</td>\n",
       "      <td>3.5</td>\n",
       "      <td>3.50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>class3</td>\n",
       "      <td>3.8</td>\n",
       "      <td>5.10</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    label     x     y\n",
       "0  class1  10.0  8.04\n",
       "1  class1  10.5  7.30\n",
       "2  class2   8.3  5.50\n",
       "3  class2   8.1  5.90\n",
       "4  class3   3.5  3.50\n",
       "5  class3   3.8  5.10"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "from io import StringIO\n",
    "\n",
    "csvfile = \"\"\"label,x,y\n",
    "class1,10.0,8.04\n",
    "class1,10.5,7.30\n",
    "class2,8.3,5.5\n",
    "class2,8.1,5.9\n",
    "class3,3.5,3.5\n",
    "class3,3.8,5.1\"\"\"\n",
    "\n",
    "df = pd.read_csv(StringIO(csvfile))\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Plotting the data where the categories are determined by the unique values in the label column `label_col`. The `x` and `y` values are simply the column names of the DataFrame that we want to plot."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfwAAAFkCAYAAADFZ4k9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3X94VeWd7/33HXMgCT9CBVRCgQF0BMXjlIAOMy1Y4Mhz\ncS5t5PKhBLRHwepIW3wAp0gtKnqGghZ1jtPO9DhOZSqEX2WK9iktYAepSkUSHwcqLf6oAxJ+Skly\nTARp7uePQEogIEl22LDX+3Vd+9J973ut9V3JJp+97nXvtUKMEUmSlNmy0l2AJElqfQa+JEkJYOBL\nkpQABr4kSQlg4EuSlAAGviRJCWDgS5KUAAa+JEkJYOBLkpQABr4kSQnQ5MAPIbQPITwZQng/hFAd\nQng5hDCoNYqTJEmp0Zwj/GeAEcAEYACwBlgbQuiWysIkSVLqhKbcPCeEkANUATfEGH9+XPsm4Gcx\nxgdSX6IkSWqpph7hZwMXAIdOaK8BPp+SiiRJUsplN6VzjPH/hBA2ALNCCL8F9gDjgSHA2yf2DyF0\nBkYB7wMft7haSZKSIwf4M+AXMcYPW7qyJgX+UbcA/wLsBI4AZcAioLCRvqOAhc2uTpIkTaAuZ1uk\nyYEfY/w98MUQQi7QMca4J4SwGHivke7vAzz33HP079+/RYWeD6ZOncoTTzyR7jJanfuZWdzPzOJ+\nZo6tW7dyyy23wNEsbanmHOEDEGOsAWpCCJ+h7kj+3ka6fQzQv39/Bg4c2NxNnTfy8/PdzwzifmYW\n9zOzJGU/j0rJKfEmB34I4XogAL8DLgMeBd4Cnk1FQZIkKfWac4SfD3wH6A4cAJYD344x/jGVhUmS\npNRpzjn8ZcCyVqhFkiS1Eq+ln0LFxcXpLuGscD8zi/uZWdxPnUqTrrTX5JWHMBAoLS0tTdLkCkmS\nWqysrIzCwkKAwhhjWUvX1+xZ+qm0fft29u/fn+4y1ExdunShZ8+e6S5DknQaaQ/87du3079/f6qr\nq9NdipopLy+PrVu3GvqSdA5Le+Dv37+f6urqxFycJ9McuzDE/v37DXxJOoelPfCPScrFeSRJSgdn\n6UuSlAAGviRJCWDgS5KUAAa+JEkJYOCn2UsvvURWVhbr169PdymSpAxm4J8DQghp3f7SpUu59dZb\n+fM//3OysrIYPnx4WuuRJKXeOfO1PKXPP/7jP1JWVsbgwYM5cOBAusuRJLUCA18899xzdO/eHYCr\nrroqzdVIklqDQ/pnQXl5OZMmTaJ79+7k5OTQp08fJk+ezJEjRxrt//LLLzN27Fh69epFTk4OPXv2\nZNq0aXz88ccN+u3Zs4fbb7+dHj16kJOTQ0FBAUVFRWzfvr2+z6ZNmxg1ahRdu3YlLy+PPn36MGnS\npAbrORb2kqTMlZFH+OXl5dTU1JzUnpubS0FBwVmtZdeuXQwePJjKykruuusuLr/8cnbu3Mny5ctP\nef+AZcuWUVNTw+TJk+ncuTMbN27kqaeeYufOnSxZsqS+35gxY9i6dStTpkyhV69e7N27lzVr1rB9\n+3Z69uzJvn37GDVqFBdddBEzZ86kU6dOvP/++6xYseJs7b4k6RyRcYFfXl5OcfFdVFWd/FqHDlBS\n8oOzGvr33Xcfe/fuZePGjXzuc5+rb3/ooYdOucyjjz5K27Zt65/fcccd9O3bl/vvv58PPviAz372\ns1RUVLBhwwa++93vMm3atPq+M2bMqP//V199lYMHD7J27doG23744YdTtHeSpPNFxg3p19TUUFUF\nbdtOp1OnJ+sfbdtOp6qKRo/8W0uMkZUrV3LjjTc2CNxPc3zYV1dX8+GHHzJkyBBqa2t54403gLrR\nijZt2rBu3ToOHjzY6Ho6depEjJHnn3/+lKcPJEnJkHGBf0xubg/atetb/8jN7XHWa9i3bx+VlZVc\neeWVTVpux44d3HbbbXTu3Jn27dvTtWtXrrvuOkIIVFRUANCmTRvmzZvHqlWruPjiixk2bBiPPfYY\ne/bsqV/PsGHDuPnmm3n44Yfp0qULRUVFPPvssxw+fDil+ylJOvdlbOCfr2praxk5ciSrVq1i5syZ\nrFy5krVr17JgwQJijNTW1tb3veeee9i2bRtz584lNzeXBx54gP79+/Pmm2/W91m6dCkbNmzgG9/4\nBuXl5UycOJFBgwadcv6AJCkzGfitqGvXrnTs2JEtW7ac8TKbN2/m7bff5vHHH+fee+/lhhtuYPjw\n4XTr1q3R/r1792bq1Kn8/Oc/Z8uWLRw+fJj58+c36HPNNdfwyCOPsHHjRhYuXMiWLVtYvHhxi/ZN\nknR+ydjAr6nZwUcfvVv/qKnZcdZrCCFQVFTECy+8QFlZ2Rktc8EFFwA0OJIHePLJJxtcka+mpoZD\nhw416NO7d286dOhQ397Yuf2rr74a4KRlJUmZLeNm6efm5tKhA1RVzefETOvQoe71s2nOnDmsWbOG\noUOHcuedd9K/f3/Ky8tZvnw5r7zyClA3ue+Yfv360bdvX6ZPn84HH3xAx44d+fGPf3xSeG/bto0R\nI0YwduxYrrjiCrKzs1mxYgV79+6luLgYgAULFvD973+fm266ib59+1JVVcXTTz9Nfn4+o0ePrl/X\nr371K9avX0+MkX379lFdXc3f/d3fATB06FC+8IUvtPaPSZLUyjIu8AsKCigp+cE58z38goICXnvt\nNWbNmsWiRYuorKyke/fujB49mry8PKDhtfSzs7P56U9/ypQpU5g7dy45OTmMGTOGr33ta/VH5wA9\nevRg/PjxvPjiizz33HNkZ2fTr18/li1bRlFREVA3ae/1119nyZIl7Nmzh/z8fK699loWLVpEr169\n6tf1y1/+ssFX9fbt28cDDzwAwIMPPmjgS1IGCMcfXaZ85SEMBEpLS0sZOHBgo33KysooLCzkdH10\n7vL3J0mt49jfV6Awxnhm54VPI2PP4UuSpD8x8CVJSgADX5KkBDDwJUlKAANfkqQEMPAlSUoAA1+S\npAQw8CVJSgADX5KkBDDwJUlKAANfkqQEMPDT7KWXXiIrK4v169enuxRJUgYz8M8Bx98t72w7cOAA\njz32GMOGDeOiiy7iM5/5DEOGDGHp0qVpq0mSlHoGfsJt2LCBWbNm0blzZ2bNmsWcOXNo164d48aN\nY/bs2ekuT5KUItnpLkDpNWDAAN5++2169OhR33b33XczcuRI5s2bxze/+U1yc3PTWKEkKRU8wj8L\nysvLmTRpEt27dycnJ4c+ffowefJkjhw50mj/l19+mbFjx9KrVy9ycnLo2bMn06ZN4+OPP27Qb8+e\nPdx+++306NGDnJwcCgoKKCoqYvv27fV9Nm3axKhRo+jatSt5eXn06dOHSZMm1b/eq1evBmF/TFFR\nEYcOHeK9995L0U9BklqmvLycd99996RHeXl5uks7LzTpCD+EkAXMBiYAlwDlwLMxxv/ZCrU126Ej\nh2ib3fZT286GXbt2MXjwYCorK7nrrru4/PLL2blzJ8uXL6e6urrRZZYtW0ZNTQ2TJ0+mc+fObNy4\nkaeeeoqdO3eyZMmS+n5jxoxh69atTJkyhV69erF3717WrFnD9u3b6dmzJ/v27WPUqFFcdNFFzJw5\nk06dOvH++++zYsWKM6oboEuXLqn5QUhSC5SXl1NcfBdVVSe/1qEDlJT8gIKCgrNf2HmkqUP69wF3\nAV8B3gIGAc+GEA7GGP8h1cU1x7YPt/HwSw/zrS98iyu6XgHA3o/2cv+L91N8VTHDew8/q/Xcd999\n7N27l40bN/K5z32uvv2hhx465TKPPvoobdv+6cPJHXfcQd++fbn//vv54IMP+OxnP0tFRQUbNmzg\nu9/9LtOmTavvO2PGjPr/f/XVVzl48CBr165tsO2HH374tDX/4Q9/4JlnnmHo0KFcfPHFTdldSWoV\nNTU1VFVB27bTyc3tcVz7Dqqq5lNTU5PG6s4PTR3SHwKsjDH+PMa4Pca4AlgNXJP60pqnZ35PenTs\nwYPrHuStfW+x96O9fOvFbxGJDLhowFmtJcbIypUrufHGGxsE7qc5Puyrq6v58MMPGTJkCLW1tbzx\nxhsA5Obm0qZNG9atW8fBgwcbXU+nTp2IMfL888+f8vRBYzWPHz+eiooKnnrqqTOuWZLOhtzcHrRr\n17f+cXz46/SaGvivAiNCCJcBhBCuBv4a+FmqC2uunOwcHrzuQS79zKXMWDuDSc/Xna+eM2IOF7W7\n6KzWsm/fPiorK7nyyiubtNyOHTu47bbb6Ny5M+3bt6dr165cd911hBCoqKgAoE2bNsybN49Vq1Zx\n8cUXM2zYMB577DH27NlTv55hw4Zx88038/DDD9OlSxeKiop49tlnOXz48Cm3/fWvf53Vq1fzzDPP\nMGDA2f2AJElqPU0N/LnAEuC3IYTDQCnwZIxxccora4Gc7BwmD55c//zW/3rrWQ/75qqtrWXkyJGs\nWrWKmTNnsnLlStauXcuCBQuIMVJbW1vf95577mHbtm3MnTuX3NxcHnjgAfr378+bb75Z32fp0qVs\n2LCBb3zjG5SXlzNx4kQGDRrU6PyB2bNn80//9E/MmzeP8ePHn5X9lSSdHU09h/9lYDwwjrpz+H8B\n/H0IoTzG+KNTLTR16lTy8/MbtBUXF1NcXNzEzZ+ZvR/tZfZLs8lvm09Odg7/8Po/0LVd1/pz+mdL\n165d6dixI1u2bDnjZTZv3szbb7/Nj370IyZMmFDfvnbt2kb79+7dm6lTpzJ16lTeffddrr76aubP\nn8+//uu/1ve55ppruOaaa3jkkUcoKSlhwoQJLF68mIkTJ9b3+d73vsfs2bOZNm0a9957bzP2VpJa\nX03NjtM+P1+VlJRQUlLSoO3YiG6qNDXwHwW+E2NcdvT5b0IIfwbMBE4Z+E888QQDBw5sVoFNdeyc\nPcDjox6nY9uOzF43mwfXPcjs62af1dAPIVBUVMTChQspKys7o5/BBRdcANDgSB7gySefbHBFvpqa\nGrKyshqc7+/duzcdOnTg0KFDABw8eJBOnTo1WM/VV18NUN8HYMmSJdxzzz3ceuutfPe7323iXkpS\n68vNzaVDB6iqms9xf76Auln65/v1Qho7CC4rK6OwsDBl22hq4OcBfzyhrZZz6Pv8tbGWrnldmTpk\nav0w/oPXPci8l+dxpPbMJq6l0pw5c1izZg1Dhw7lzjvvpH///pSXl7N8+XJeeeUVoG6i3DH9+vWj\nb9++TJ8+nQ8++ICOHTvy4x//+KSJedu2bWPEiBGMHTuWK664guzsbFasWMHevXvr3zQLFizg+9//\nPjfddBN9+/alqqqKp59+mvz8fEaPHg3A66+/zle+8hW6dOnCF7/4RRYuXNhgO3/1V39F7969W/NH\nJEmfqqCggJKSHzQ6Gz83N9ev5J2Bpgb+C8C3QwgfAL8BBgJTgX9OdWHNdUn7S/jOyO80aDs2kS8d\nCgoKeO2115g1axaLFi2isrKS7t27M3r0aPLy8oCG19LPzs7mpz/9KVOmTGHu3Lnk5OQwZswYvva1\nr9UfnQP06NGD8ePH8+KLL/Lcc8+RnZ1Nv379WLZsGUVFRUDdpL3XX3+dJUuWsGfPHvLz87n22mtZ\ntGgRvXr1AuCtt97iyJEj7Nu3r8EFeY754Q9/aOBLOicY6i0Tjj+6/NTOIbQDHgFuAi6i7sI7i4BH\nYownHT6HEAYCpaWlpacczj42ZHG6Pjp3+fuTpNZx3JB+YYyxrKXra9IRfozxI2Da0YckSTpPnDPn\n3iVJUusx8CVJSgADX5KkBDDwJUlKAANfkqQEMPAlSUoAA1+SpAQw8CVJSgADX5KkBDDwJUlKAANf\nkqQEMPDT7KWXXiIrK4v169enuxRJUgYz8M8Bx98eNx2mTp1KYWEhnTt3pl27dlxxxRXMnj2bjz76\nKK11SZJSp0l3y1NmKi0tZejQoUycOJGcnBzeeOMN5s6dy4svvujIgyRlCANfjYZ6nz59+Nu//Vs2\nbtzINddck4aqJEmplNFD+p988gmHDh1KdxmUl5czadIkunfvTk5ODn369GHy5MkcOXKk0f4vv/wy\nY8eOpVevXuTk5NCzZ0+mTZvGxx9/3KDfnj17uP322+nRowc5OTkUFBRQVFTE9u3b6/ts2rSJUaNG\n0bVrV/Ly8ujTpw+TJk361Jp79epFjJGDBw+2bOclSeeEjDzC37NnD//yz//Mr1evpvbIEa4cMoTb\n7riDfv36nfVadu3axeDBg6msrOSuu+7i8ssvZ+fOnSxfvpzq6upGl1m2bBk1NTVMnjyZzp07s3Hj\nRp566il27tzJkiVL6vuNGTOGrVu3MmXKFHr16sXevXtZs2YN27dvp2fPnuzbt49Ro0Zx0UUXMXPm\nTDp16sT777/PihUrTtrmH//4Rw4ePMjhw4fZvHkzs2bNIj8/36N7ScoUMcZWewADgVhaWhpPpbS0\nNH5an6aorKyMt40dG2+/7LL4k0GD4i+uvTb+P5ddFseMGBHffffdlGyjKb7yla/E7OzsWFZW1ujr\n69ati1lZWfGll16qb/v4449P6jd37tx4wQUXxB07dsQYYzx48GAMIcT58+efcts/+clPYlZW1im3\nfbxf//rXMYRQ/+jfv39cv379py6X6t+fJKnOsb+vwMCYgkzOuCH91atXU/Ef/8GjvXvzpUsu4fqu\nXZl32WV03rGD5cuWndVaYoysXLmSG2+8kc997nNnvFzbtm3r/7+6upoPP/yQIUOGUFtbyxtvvAFA\nbm4ubdq0Yd26daccdu/UqRMxRp5//vlTnj445oorrmDt2rWsXLmSGTNm0K5dOyorK8+4ZknSuS3j\nAn/r1q1cWVtLlzZt6tvaZGXx17m5/La09KzWsm/fPiorK7nyyiubtNyOHTu47bbb6Ny5M+3bt6dr\n165cd911hBCoqKgAoE2bNsybN49Vq1Zx8cUXM2zYMB577DH27NlTv55hw4Zx88038/DDD9OlSxeK\niop49tlnOXz48Enb7NChA8OHD+eGG27gO9/5DtOmTeNLX/oSmzdvbtkPQZJ0Tsi4wO/YsSN74dgp\nhXq7Dx+mw4UXpqeoJqitrWXkyJGsWrWKmTNnsnLlStauXcuCBQuIMVJbW1vf95577mHbtm3MnTuX\n3NxcHnjgAfr378+bb75Z32fp0qVs2LCBb3zjG5SXlzNx4kQGDRp0yvkDx4wZMwaAxYsXt86OSpLO\nqowL/BEjRlCen8/CnTs5XFtLjJF1+/fzSlYWI//7fz+rtXTt2pWOHTuyZcuWM15m8+bNvP322zz+\n+OPce++93HDDDQwfPpxu3bo12r93795MnTqVn//852zZsoXDhw8zf/78Bn2uueYaHnnkETZu3MjC\nhQvZsmXLpwb5oUOHqK2trR9RkCSd3zIu8K+88kpumT6dJTk53Pree9z67rvM/+QTPn/LLYwePfqs\n1hJCoKioiBdeeIGysrIzWuaCCy4AaHAkD/Dkk082uCJfTU3NSV857N27Nx06dKhvb+zc/tVXXw1Q\n36eioqLR8/tPP/00IQQGDx58RnVLks5tGfm1vC9/+ct8/vOf55VXXuGTTz6hsLCQyy+/PC2XsJ0z\nZw5r1qxh6NCh3HnnnfTv35/y8nKWL1/OK6+8AjQ8/dCvXz/69u3L9OnT+eCDD+jYsSM//vGPTwrv\nbdu2MWLECMaOHcsVV1xBdnY2K1asYO/evRQXFwOwYMECvv/973PTTTfRt29fqqqqePrpp8nPz6//\n8LNu3TqmTJnCzTffzGWXXcbhw4dZv349//Zv/8bgwYOZMGHCWfpJSZJaU0YGPkD37t0ZO3Zsusug\noKCA1157jVmzZrFo0SIqKyvp3r07o0ePJi8vD2h4Lf3s7Gx++tOfMmXKFObOnUtOTg5jxozha1/7\nWv3ROUCPHj0YP348L774Is899xzZ2dn069ePZcuWUVRUBNRN2nv99ddZsmQJe/bsIT8/n2uvvZZF\nixbRq1cvAK666iqGDx/O888/z65du4gx0rdvXx566CHuvfdesrMz9i0iSYkSTpzcltKVhzAQKC0t\nLWXgwIGN9ikrK6OwsJDT9dG5y9+fJLWOY39fgcIY45mdFz4ND98kSTqF8vJyampqTmrPzc2loKAg\nDRU1n4EvSVIjysvLKS6+i6qqk1/r0AFKSn5wXoW+gS9JUiNqamqoqoK2baeTm9vjuPYdVFXNb/TI\n/1xm4EuSdBq5uT1o165vg7Zz4EasTZZx38OXJEknM/AlSUoAh/QlSTqNmpodp31+vjDwJUlqRG5u\nLh06QFXV/JPO2XfoUPf6+eScCfytW7emuwQ1g783SZmqoKCAkpIf+D38VOnSpQt5eXnccsst6S5F\nzZSXl0eXLl3SXYYkpdz5Fuqnk/bA79mzJ1u3bmX//v3pLkXN1KVLF3r27JnuMiRJp5H2wIe60Dcw\nJElqPX4tT5KkBDDwJUlKgCYFfgjh9yGE2kYeT7VWgZIkqeWaeg5/EHDBcc+vAlYDS1NWkSRJSrkm\nBX6M8cPjn4cQbgDejTH+KqVVSZKklGr2OfwQwn8BJgDPpK4cSZLUGloyae8mIB9YkKJaJElSK2lJ\n4E8EVsUYd6eqGEmS1DqadeGdEEJPYCRQdCb9p06dSn5+foO24uJiiouLm7N5SZIySklJCSUlJQ3a\nKioqUrqNEGNs+kIhPAR8FegRY6w9Tb+BQGlpaSkDBw5sdpGSJCVNWVkZhYWFAIUxxrKWrq/JQ/oh\nhADcBjx7urCXJEnnjuacwx8J9AB+mOJaJElSK2nyOfwY4xoaXnxHkiSd47yWviRJCWDgS5KUAAa+\nJEkJYOBLkpQABr4kSQlg4EuSlAAGviRJCWDgS5KUAAa+JEkJYOBLkpQABr4kSQlg4EuSlAAGviRJ\nCWDgS5KUAAa+JEkJYOBLkpQABr4kSQlg4EuSlAAGviRJCWDgS5KUAAa+JEkJYOBLkpQABr4kSQlg\n4EuSlAAGviRJCWDgS5KUAAa+JEkJYOBLkpQABr4kSQlg4EuSlAAGviRJCWDgS5KUAAa+JEkJYOBL\nkpQABr4kSQlg4EuSlAAGviRJCWDgS5KUAAa+JEkJYOBLkpQABr4kSQnQ5MAPIRSEEH4UQtgfQqgO\nIbwZQhjYGsVJkqTUyG5K5xBCJ+AV4EVgFLAfuAz4Q+pLkyRJqdKkwAfuA7bHGO84ru0/U1iPJElq\nBU0d0r8B2BRCWBpC2BNCKAsh3PGpS0mSpLRqauD3Ae4GfgdcD/wj8L9CCLemujBJkpQ6TR3SzwI2\nxhhnHX3+ZghhAPA3wI9OtdDUqVPJz89v0FZcXExxcXETNy9JUuYpKSmhpKSkQVtFRUVKtxFijGfe\nOYT3gdUxxjuPa/sb4P4YY49G+g8ESktLSxk40In8kiSdqbKyMgoLCwEKY4xlLV1fU4f0XwEuP6Ht\ncpy4J+k8Uhtrm9QuZYKmBv4TwF+GEGaGEPqGEMYDdwD/kPrSJCn1amMtc341h8VbFjdoX7xlMXN+\nNcfQV8ZqUuDHGDcBNwHFwGbgfuCeGOPi0y4oSeeIrJDFpRdeysLNC+tDf/GWxSzcvJBLL7yUrOAF\nSJWZmjppjxjjz4CftUItknRWjBswDoCFmxey5DdLOFJ7hAlXTahvlzKRH2UlJdK4AePIzsrmSO0R\nsrOyDXtlPANfUiIt3rK4PuyP1B456Zy+lGmaPKQvSee7Y+fsjw3jH3sOeKSvjGXgS0qU2ljLOwfe\naXDO/th/3znwDrWx1ol7ykgGvqREyQpZfOsL3zop1McNGGfYK6P5zpaUOKcKdcNemcx3tyRJCWDg\nS5KUAAa+JEkJYOBLkpQABr4kSQlg4EuSlAAGviRJCWDgS5KUAAa+JEkJYOBLkpQABr4knUZtrG1S\nu3SuMvAl6RRqYy1zfjWHxVsWN2hfvGUxc341x9DXecXAl6RTyApZXHrhpSzcvLA+9BdvWczCzQu5\n9MJLvdmOziveHleSTmPcgHEALNy8kCW/WcKR2iNMuGpCfbt0vvDjqSR9inEDxpGdlc2R2iNkZ2Ub\n9jovGfiS9CkWb1lcH/ZHao+cdE5fOh84pC9Jp3HsnP2xYfxjzwGP9HVeMfAl6RRqYy3vHHinwTn7\nY/9958A71MZaJ+7pvGHgS9IpZIUsvvWFb50U6uMGjDPsdd7x3SpJp3GqUDfsdb7xHStJUgIY+JIk\nJYCBL0lSAhj4kiQlgIEvSVICGPiSJCWAgS9JUgIY+JIkJYCBL0lSAhj4kiQlgIEvSVICePOcU9i5\ncye7d++mW7duFBQUpLscSZJaxMA/QVVVFY8/+iibVq+G6mrIy2PQ9dczfcYM2rdvn+7yJElqFof0\nT/D4o4/yu6VLmZ6VxQ8LCpielcXvli5l/rx56S5NkqRmM/CPs3PnTjatXs2dF17IdV260KVNG67r\n0oWvXnghm1avpry8PN0lSpLULE0K/BDCgyGE2hMeb7VWcWfb7t27obqaAR07Nmi/qmNHqK5m165d\naapMkqSWac4R/hbgYuCSo4/Pp7SiNLrkkksgL48tlZUN2jdXVkJeHt26dUtTZZIktUxzAv9IjHFf\njHHv0ceBlFeVJt27d2fQ9dfzvw8c4N/372f/4cP8+/79PH3gAIOuv97Z+pKk81ZzZulfFkLYCXwM\nbABmxhh3pLas9Jk+YwbzgcdXr4by8rpZ+mPHMn3GjHSXJklSszU18H8N3Ab8DugGPASsDyEMiDF+\nlNrS0qN9+/Y8+MgjlN99N7t27fJ7+JKkjBBijM1fOIR84D+BqTHGHzby+kCgdOjQoeTn5zd4rbi4\nmOLi4mZvW5KkTFFSUkJJSUmDtoqKCtavXw9QGGMsa+k2WhT4ACGEjcCaGOP9jbw2ECgtLS1l4MCB\nLdqOJElJUlZWRmFhIaQo8Fv0PfwQQnvgUsDvq0mSdA5r6vfwHwshDA0h9Aoh/BXwb8AnQMmnLCpJ\nktKoqZP2PgssAjoD+4CXgb+MMX6Y6sIkSVLqNCnwY4zOspMk6TzktfQlSUoAA1+SpAQw8CVJSgAD\nX5KkBDDwJUlKAANfkqQEMPAlSUoAA1+SpAQw8CVJSgADX5KkBDDwJUlKAANfkqQEMPAlSUoAA1+S\npAQw8CXAo+yiAAAKsklEQVRJSgADX5KkBDDwJUlKAANfkqQEMPAlSUoAA1+SpAQw8CVJSgADX5Kk\nBDDwJUlKAANfkqQEMPAlSUoAA1+SpAQw8CVJSgADX5KkBDDwJUlKAANfkqQEMPAlSUoAA1+SpAQw\n8CVJSgADX5KkBDDwJUlKAANfkqQEMPAlSUoAA1+SpAQw8CVJSgADX5KkBGhR4IcQ7gsh1IYQHk9V\nQZIkKfWaHfghhMHAncCbqStHkiS1hmYFfgihPfAccAdwMKUVSZKklGvuEf73gBdijL9MZTGSJKl1\nZDd1gRDCOOAvgEGpL0eSJLWGJgV+COGzwJPAyBjjJ61TkiRJSrWmHuEXAl2BshBCONp2ATA0hPB1\noG2MMZ640NSpU8nPz2/QVlxcTHFxcTNKliQps5SUlFBSUtKgraKiIqXbCI3k86k7h9AO6HVC87PA\nVmBujHHrCf0HAqWlpaUMHDiwhaVKkpQcZWVlFBYWAhTGGMtaur4mHeHHGD8C3jq+LYTwEfDhiWEv\nSZLOHam40t6ZDxFIkqS0aPIs/RPFGIenohBJktR6vJa+JEkJYOBLkpQABr4kSQlg4EuSlAAGviRJ\nCWDgS5KUAAa+JEkJYOBLkpQABr4kSQlg4EuSlAAGviRJCWDgS5KUAAa+JEkJYOBLkpQABr4kSQlg\n4EuSlAAGviRJCZCd7gJSbefOnezevZtu3bpRUFCQ7nIkSTonZEzgV1VV8fijj7Jp9Wqoroa8PAZd\nfz3TZ8ygffv26S5PkqS0ypgh/ccffZTfLV3K9KwsflhQwPSsLH63dCnz581Ld2mSJKVdRgT+zp07\n2bR6NXdeeCHXdelClzZtuK5LF7564YVsWr2a8vLydJcoSVJaZUTg7969G6qrGdCxY4P2qzp2hOpq\ndu3alabKJEk6N2RE4F9yySWQl8eWysoG7ZsrKyEvj27duqWpMkmSzg0ZEfjdu3dn0PXX878PHODf\n9+9n/+HD/Pv+/Tx94ACDrr/e2fqSpMTLmFn602fMYD7w+OrVUF5eN0t/7Fimz5iR7tIkSUq7jAn8\n9u3b8+Ajj1B+993s2rXL7+FLknScjAn8YwoKCgx6SZJOkBHn8CVJ0ukZ+JIkJYCBL0lSAhj4kiQl\ngIEvSVICGPiSJCWAgS9JUgIY+JIkJYCBL0lSAhj4kiQlgIEvSVICGPiSJCWAgS9JUgIY+ClUUlKS\n7hLOCvczs7ifmcX91Kk0KfBDCH8TQngzhFBx9PFqCOH/aq3izjdJeQO6n5nF/cws7qdOpalH+DuA\nGcBAoBD4JbAyhNA/1YVJkqTUyW5K5xjj/3tC07dDCHcDfwlsTVlVkiQppZoU+McLIWQBY4E8YEPK\nKpIkSSnX5MAPIQygLuBzgCrgphjjb0/RPQdg69ZkHPxXVFRQVlaW7jJanfuZWdzPzOJ+Zo7jsjMn\nFesLMcamLRBCNtATyAduBr4KDG0s9EMI44GFKahTkqSkmhBjXNTSlTQ58E9aQQhrgHdijHc38lpn\nYBTwPvBxizYkSVKy5AB/BvwixvhhS1fW7HP4x8kC2jb2wtECW/ypRJKkhHo1VStqUuCHEOYAq4Dt\nQAdgAjAMuD5VBUmSpNRr6hH+RcACoBtQAfwHcH2M8ZepLkySJKVOi8/hS5Kkc5/X0pckKQEMfEmS\nEqBVAj+pN9kJIdwXQqgNITye7lpSKYTw4NH9Ov7xVrrrag0hhIIQwo9CCPtDCNVH38cD011XqoUQ\nft/I77Q2hPBUumtLpRBCVgjhkRDCe0d/n++EEL6d7rpaQwihfQjhyRDC+0f39eUQwqB019USIYQv\nhBCeDyHsPPr+vLGRPg+HEMqP7vOaEMKl6ai1JT5tP0MIN4UQfnH071JtCOG/Nmc7rXWEn7ib7IQQ\nBgN3Am+mu5ZWsgW4GLjk6OPz6S0n9UIInYBXgEPUXT+iPzAd+EM662olg/jT7/IS4L8BEViazqJa\nwX3AXcBkoB/wTeCbIYSvp7Wq1vEMMIK6b08NANYAa0MI3dJaVcu0A/4/6n5/J004CyHMAL5O3d/e\na4CPgF+EENqczSJT4LT7efT1X1H3/m32xLuzNmkvhPAhcG+M8YdnZYNnUQihPVAK3A3MAt6IMU5L\nb1WpE0J4EPhSjDHjjnSPF0KYCwyJMQ5Ldy1nWwjhSWB0jPHP011LKoUQXgB2xxi/elzbcqA6xviV\n9FWWWiGEY5c6vyHG+PPj2jcBP4sxPpC24lIkhFALFMUYnz+urRx4LMb4xNHnHYE9wP+IMZ6XH14b\n28/jXusF/B74ixjjfzR13a1+Dv/okNo4MvsmO98DXsjwrydednS46d0QwnMhhB7pLqgV3ABsCiEs\nDSHsCSGUhRDuSHdRrS2E8F+oOyp8Jt21tIJXgREhhMsAQghXA38N/CytVaVeNnABdaNTx6shA0fj\nAEIIvakbnXrxWFuMsRJ4DRiSrrrOZam40l6jmniTnfPW0Q8zf0HdEGmm+jVwG/A76q7B8BCwPoQw\nIMb4URrrSrU+1I3SzAf+jrohwv8VQjgUY/xRWitrXTdRd2+MBekupBXMBToCvw0h/JG6g5z7Y4yL\n01tWasUY/08IYQMwK4TwW+qOcsdTF3xvp7W41nMJdcPbe05o33P0NZ2g1QIf+C1wNX+6yc6/hhAa\nvcnO+SqE8FngSWBkjPGTdNfTWmKMvzju6ZYQwkbgP6m7PXImnaLJAjbGGGcdff7m0Q+ufwNkcuBP\nBFbFGHenu5BW8GXqgm8c8BZ1H87/PoRQnoEf4m4B/gXYCRwByqi7tHlhOovSuaPVhvRjjEdijO/F\nGN+IMd5P3WS2e1pre2lSCHQFykIIn4QQPqHuUsP3hBAOhxBCestrHTHGCmAbcN7Nhv0Uu4AT7+W8\nlbq7Q2akEEJPYCTwdLpraSWPAnNjjMtijL+JMS4EngBmprmulIsx/j7G+EXqJnj1iDH+JdAGeC+9\nlbWa3UCgbjLx8S4++ppOcDa/h3/Km+ycx9YCV1F31HD10ccm4Dng6pihlzE8OknxUuoCMpO8Alx+\nQtvl1I1mZKqJ1A2BZto57WPygD+e0FZLBl+DJMZYE2PcE0L4DHXfNvlJumtqDTHG31MX7COOtR2d\ntHctKbzhzDmo2bnSKkP6SbnJztHz1w2+jx5C+Aj4MMZ44pHieSuE8BjwAnXB1x2YDXwClKSzrlbw\nBPBKCGEmdV9Puxa4A/jqaZc6Tx0dgboNeDbGWJvmclrLC8C3QwgfAL+h7qvCU4F/TmtVrSCEcD11\nR7y/Ay6jbnTjLeDZNJbVIiGEdtQdXBwbLe1zdOLlgRjjDupOqX47hPAOdbdhfwT4AFiZhnKb7dP2\n8+iHt57U/f0NQL+j/353xxhPnMNwajHGlD+o+8f0HnUzRHcDq4HhrbGtc+1B3TUHHk93HSnepxLq\n/hHVUPchbhHQO911tdK+jqbuplDV1AXExHTX1Ir7+t+oO/q9NN21tOI+tgMep+6rTB9RN4FtNpCd\n7tpaYV//b+Cdo/9OdwJ/D3RId10t3Kdh1I3I/PGEx78c1+choPzov9lfnI/v50/bT+B/nOL1B5qy\nHW+eI0lSAmTseSxJkvQnBr4kSQlg4EuSlAAGviRJCWDgS5KUAAa+JEkJYOBLkpQABr4kSQlg4EuS\nlAAGviRJCWDgS5KUAP8/FM4vy+c84OQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1075b3ef0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "from mlxtend.plotting import category_scatter\n",
    "\n",
    "fig = category_scatter(x='x', y='y', label_col='label', \n",
    "                       data=df, legend_loc='upper left')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example 2 - Category Scatter from NumPy Arrays"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[  1.  ,  10.  ,   8.04],\n",
       "       [  1.  ,  10.5 ,   7.3 ],\n",
       "       [  2.  ,   8.3 ,   5.5 ],\n",
       "       [  2.  ,   8.1 ,   5.9 ],\n",
       "       [  3.  ,   3.5 ,   3.5 ],\n",
       "       [  3.  ,   3.8 ,   5.1 ]])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "from io import BytesIO\n",
    "\n",
    "csvfile = \"\"\"1,10.0,8.04\n",
    "1,10.5,7.30\n",
    "2,8.3,5.5\n",
    "2,8.1,5.9\n",
    "3,3.5,3.5\n",
    "3,3.8,5.1\"\"\"\n",
    "\n",
    "ary = np.genfromtxt(BytesIO(csvfile.encode()), delimiter=',')\n",
    "ary"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now, pretending that the first column represents the labels, and the second and third column represent the `x` and `y` values, respectively."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10e233ac8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "from mlxtend.plotting import category_scatter\n",
    "\n",
    "fix = category_scatter(x=1, y=2, label_col=0, \n",
    "                       data=ary, legend_loc='upper left')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## API"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "## category_scatter\n",
      "\n",
      "*category_scatter(x, y, label_col, data, markers='sxo^v', colors=('blue', 'green', 'red', 'purple', 'gray', 'cyan'), alpha=0.7, markersize=20.0, legend_loc='best')*\n",
      "\n",
      "Scatter plot to plot categories in different colors/markerstyles.\n",
      "\n",
      "**Parameters**\n",
      "\n",
      "- `x` : str or int\n",
      "\n",
      "    DataFrame column name of the x-axis values or\n",
      "    integer for the numpy ndarray column index.\n",
      "\n",
      "- `y` : str\n",
      "\n",
      "    DataFrame column name of the y-axis values or\n",
      "    integer for the numpy ndarray column index\n",
      "\n",
      "- `data` : Pandas DataFrame object or NumPy ndarray.\n",
      "\n",
      "\n",
      "- `markers` : str\n",
      "\n",
      "    Markers that are cycled through the label category.\n",
      "\n",
      "- `colors` : tuple\n",
      "\n",
      "    Colors that are cycled through the label category.\n",
      "\n",
      "- `alpha` : float (default: 0.7)\n",
      "\n",
      "    Parameter to control the transparency.\n",
      "\n",
      "- `markersize` : float (default` : 20.0)\n",
      "\n",
      "    Parameter to control the marker size.\n",
      "\n",
      "- `legend_loc` : str (default: 'best')\n",
      "\n",
      "    Location of the plot legend\n",
      "    {best, upper left, upper right, lower left, lower right}\n",
      "    No legend if legend_loc=False\n",
      "\n",
      "**Returns**\n",
      "\n",
      "- `fig` : matplotlig.pyplot figure object\n",
      "\n",
      "\n",
      "**Examples**\n",
      "\n",
      "For usage examples, please see\n",
      "    [http://rasbt.github.io/mlxtend/user_guide/plotting/category_scatter/](http://rasbt.github.io/mlxtend/user_guide/plotting/category_scatter/)\n",
      "\n",
      "\n"
     ]
    }
   ],
   "source": [
    "with open('../../api_modules/mlxtend.plotting/category_scatter.md', 'r') as f:\n",
    "    print(f.read())"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  },
  "toc": {
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
